package com.kaili.pojo.dto.sign;

import com.kaili.common.checkField.IdCardFeildCheck;
import com.kaili.common.checkField.PhoneFeildCheck;
import com.kaili.pojo.entity.HsEwbsSignDetail;
import com.kaili.utils.Annotation.CheckField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by renzhikun on 18-11-29.
 */
@Data
public class SignAddDTO {

    @ApiModelProperty("网点ID")
    @CheckField
    private Integer siteId;

    @NotNull(message = "签收人不能为空")
    @ApiModelProperty("签收人")
    private String signMan;

    @NotNull(message = "实收费用不能为空")
    @ApiModelProperty("实收费用")
    private BigDecimal actualCharge;

    @NotNull(message = "应收费用不能为空")
    @ApiModelProperty("应收费用")
    private BigDecimal shouldCharge;

    @ApiModelProperty(value = "代收货款")
    private BigDecimal codCharge;

    @ApiModelProperty(value = "提付费")
    private BigDecimal liftCharge;

    @NotNull(message = "证件号不能为空")
    @ApiModelProperty(value = "证件号")
    @CheckField(checkHandlerClass = IdCardFeildCheck.class)
    private String certificateNo;

    @NotNull(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号")
    @CheckField(checkHandlerClass = PhoneFeildCheck.class)
    private String phone;

    @NotNull(message = "签收类型不能为空")
    @ApiModelProperty(value = "签收类型")
    @CheckField(regexp = "^[0-1]")
    private Integer signType;

    @ApiModelProperty(value = "签收时间")
    @CheckField
    private String signTime;

    @NotNull(message = "保管费其他不能为空")
    @ApiModelProperty(value = "保管费其他")
    private BigDecimal otherCharge;

    @ApiModelProperty(value = "设备编号")
    private String deviceCode;

    @ApiModelProperty(value = "货源")
    private Integer scanSourceId;

    @ApiModelProperty(value = "签收详情")
    @CheckField
    List<HsEwbsSignDetail> lst;

    @ApiModelProperty("创建人")
    private Integer createdBy;

    @NotNull(message = "来源不能为空")
    @ApiModelProperty("来源,1标示web端,2标示PDA端")
    private Integer sourceType;


}
